home *** CD-ROM | disk | FTP | other *** search
/ Sprite 1984 - 1993 / Sprite 1984 - 1993.iso / src / lib / c / bit / RCS / Bit.man,v < prev    next >
Text File  |  1988-12-30  |  4KB  |  133 lines

  1. head     1.1;
  2. branch   ;
  3. access   ;
  4. symbols  ;
  5. locks    ; strict;
  6. comment  @@;
  7.  
  8.  
  9. 1.1
  10. date     88.12.30.13.26.50;  author ouster;  state Exp;
  11. branches ;
  12. next     ;
  13.  
  14.  
  15. desc
  16. @@
  17.  
  18.  
  19.  
  20. 1.1
  21. log
  22. @Initial revision
  23. @
  24. text
  25. @' $Header: Bit,v 1.2 87/06/11 18:35:32 deboor Exp $ SPRITE (Berkeley)
  26. .so \*(]ltmac.sprite
  27. .HS Bit lib
  28. .BS
  29. .SH NAME
  30. Bit_Set, Bit_Clear, Bit_IsSet, Bit_IsClear, Bit_Copy, 
  31. Bit_Zero, Bit_FindFirstSet, Bit_FindFirstClear,
  32. Bit_Intersect, Bit_Union, Bit_AnySet, Bit_Expand,
  33. Bit_Alloc, Bit_Free \- bit operations
  34. .SH SYNOPSIS
  35. .nf
  36. #include <bit.h>
  37. .sp
  38. \fBBit_Set\fR(\fIbitNum, arrayPtr\fP)
  39.  
  40. \fBBit_Clear\fR(\fIbitNum, arrayPtr\fP)
  41.  
  42. \fBBit_IsSet\fR(\fIbitNum, arrayPtr\fP)
  43.  
  44. \fBBit_IsClear\fR(\fIbitNum, arrayPtr\fP)
  45.  
  46. \fBBit_Copy\fR(\fInumBits, srcArrayPtr, destArrayPtr\fP)
  47.  
  48. \fBBit_Zero\fR(\fInumBits, arrayPtr\fP)
  49.  
  50. \fBBit_FindFirstSet\fR(\fInumBits, arrayPtr\fP)
  51.  
  52. \fBBit_FindFirstClear\fR(\fInumBits, arrayPtr\fP)
  53.  
  54. Boolean
  55. \fBBit_Intersect\fR(\fInumBits, array1Ptr, array2Ptr, destArrayPtr\fP)
  56.  
  57. Boolean
  58. \fBBit_Union\fR(\fInumBits, array1Ptr, array2Ptr, destArrayPtr\fP)
  59.  
  60. Boolean
  61. \fBBit_AnySet\fR(\fInumBits, arrayPtr\fP)
  62.  
  63. int *
  64. \fBBit_Expand\fR(\fInewNumBits, oldNumBits, oldArrayPtr\fP)
  65.  
  66. \fBBit_Alloc\fR(\fInumBits, arrayPtr\fP)
  67.  
  68. \fBBit_Free\fR(\fIarrayPtr\fP)
  69. .SH ARGUMENTS
  70. .AP int bitNum in
  71. The number in the array of the bit to manipulate.
  72. .AP int numBits in
  73. The number of bits in all the \fI*arrayPtr\fP variables passed.
  74. .AP int *arrayPtr in,out
  75. The array of bits.
  76. .AP int *srcArrayPtr in
  77. The array of bits to be copied.
  78. .AP int *destArrayPtr out
  79. The array to which bits are copied.
  80. .AP int *array1Ptr in
  81. The first source array in an intersection or union operation.
  82. .AP int *array2Ptr in
  83. The second source array in an intersection or union operation.
  84. .AP int newNumBits in
  85. The number of bits the expanded array must hold.
  86. .AP int oldNumBits in
  87. The number of bits in the old array.
  88. .AP int *oldArrayPtr in
  89. The bit array that is now too small.
  90. .BE
  91. .SH DESCRIPTION
  92. These procedures manipulate integer arrays of bits.  All the procedures
  93. operate on integer arrays and \fInumBits\fP is used to compute the size
  94. of \fI*arrayPtr\fP. If \fInumBits\fP is not a multiple of the number of
  95. bits in an integer, it is rounded up to the nearest multiple.
  96. .PP
  97. \fBBit_Set\fR sets the \fIbitNum\fP bit in \fI*arrayPtr\fP.
  98. .br
  99. \fBBit_Clear\fR clears the \fIbitNum\fP bit in \fI*arrayPtr\fP.
  100. .PP
  101. The predicates \fBBit_IsSet\fR and \fBBit_IsClear\fR test to see if 
  102. the \fIbitNum\fP bit is set or cleared.
  103. .PP
  104. \fBBit_Zero\fR clears all bits in \fI*arrayPtr\fR.
  105. .br
  106. \fBBit_Copy\fR copies \fI*srcArrayPtr\fR to \fI*destArrayptr\fR.
  107. .PP
  108. \fBBit_FindFirstSet\fR and \fBBit_FindFirstClear\fR return the index of the
  109. rightmost bit in \fI*arrayPtr\fP that is set or cleared. The index
  110. begins at 0 and -1 is returned if no set or cleared bit is found.
  111. .PP
  112. \fBBit_Intersect\fR and \fBBit_Union\fR find the intersection and union, respectively,
  113. of the two bit arrays and stores the result in the third array. They
  114. return TRUE if the intersection or union is non-empty. For both functions,
  115. if \fIdestArrayPtr\fP is NULL, the result is not stored anywhere.
  116. .PP
  117. \fBBit_AnySet\fR examines the array to see if any of the bits is on, returning
  118. TRUE if at least one is set and FALSE otherwise.
  119. .PP
  120. \fBBit_Alloc\fR and \fBBit_Free\fR are used to allocate and free bit arrays.
  121. \fBBit_Alloc\fR creates an array to hold \fInumBits\fP bits and sets \fIarrayPtr\fP
  122. to point at it. The array initially has no bits set. \fBBit_Free\fR deallocates
  123. a previously-allocated bit array.
  124. .PP
  125. \fBBit_Expand\fR takes an existing, dynamically-allocated array, \fIoldArrayPtr\fP,
  126. along with its width, \fIoldNumBits\fP, and expands it to contain
  127. \fInewNumBits\fP bits, returning a pointer to the expanded array. The array may
  128. or may not have moved. If the array was moved, the old array was deallocated
  129. at the same time. The new bits are initially all 0.
  130. .SH KEYWORDS
  131. bit, set, clear, copy, zero
  132. @
  133.